package cn.gjxblog.core.event.jdk.demo1;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;

import java.util.Date;

/**
 * 观察者模式
 * @since   JDK1.0
 *
 * 内部被观察者通过队列维护所有的观察者
 * 观察者：被观察者 N:1
 */
@RunWith(JUnit4.class)
public class TestObservable {

    @Test
    public void testObservable(){
        // 观察者
        MyObserver myObserver = new MyObserver();

        // 被观察者 相当于事件源
        MyObservable myObservable = new MyObservable();
        myObservable.addObserver(myObserver);
        // 调用事件、通知观察者
        myObservable.startApplication(new Date());
    }
}
